<?php

/**
 * Created by Sven.
 * Date: 2016/12/24
 * Time: 21:25
 */
class Tool {

    /**
     * 客户端跳转
     * @param string $_msg
     * @param string $_url
     *
     * 如果客户端禁用Js，可能有安全隐患
     * 用于常规的跳转
     */
    public static function alertLocation($_msg = '', $_url = ''){
        if (empty($_msg)){
            echo <<<EOF
            <script type="text/javascript"> window.location.href='$_url'; </script>
EOF;
            exit;
        } else {
            echo <<<EOF
            <script type="text/javascript">alert('$_msg'); window.location.href='$_url';</script>
EOF;
            exit;
        }
    }

    /**
     * 服务器端的跳转
     * @param string $_url
     *
     * 较为安全
     * 用于登录跳转
     */
    public static function alertLocSecurity($_url = ''){
        if (!empty($_url)){
            header('Location: '.$_url);
        }
    }

    /**
     * 弹出Js Alert提示
     * @param string $_msg
     */
    public static function alertBack($_msg = ''){
        echo <<<EOF
            <script type="text/javascript">alert('$_msg'); window.history.back();</script>
EOF;
        exit;
    }

    /**
     * 清除session
     * 用于退出登陆时
     */
    public static function unSession() {
        $_SESSION['admin'] = null;

        session_destroy();
    }


    /**
     * 自动过滤html中的特殊字符
     * @param  mixed $_data 参数支持数组、对象、字符串
     * @return mixed array 返回格式化后的数组、对象、字符串
     */
    public static function htmlString($_data){
        if (is_array($_data)){
            foreach ($_data as $_key => $_val){
                $_data[$_key] = self::htmlString($_val);
            }
        } elseif (is_object($_data)){
            foreach ( $_data as $_key => $_val ) {
                $_data->$_key = self::htmlString($_val);
            }
        } else {
            return htmlspecialchars($_data);
        }

        return $_data;
    }

    /**
     * 自动解码 和 htmlString 对应
     * @param $_data
     * @return array|string
     */
    public static function unHtml($_data){
        if (is_array($_data)){
            foreach ($_data as $_key => $_val){
                $_data[$_key] = self::unHtml($_val);
            }
        } elseif (is_object($_data)){
            foreach ( $_data as $_key => $_val ) {
                $_data->$_key = self::unHtml($_val);
            }
        } else {
            return htmlspecialchars_decode($_data);
        }

        return $_data;
    }

    /**
     * 自动过滤出输入字符中的特殊符号：'  "  \ 等
     * @param $_data 输入字符串
     * @return string 过滤后的字符串
     */
    public static function mysqlString($_data){
        if (is_array($_data)){
            foreach ($_data as $_key => $_val){
                $_data[$_key] = self::htmlString($_val);
            }
        } elseif (is_object($_data)){
            foreach ( $_data as $_key => $_val ) {
                $_data->$_key = self::htmlString($_val);
            }
        } else {
            return mysql_real_escape_string($_data);
        }

        return $_data;
    }

    /**
     * 截取字符串
     * @param $_content 待截取的字符串
     * @param $_max_len 最大长度
     * @return string 返回处理后的字符串
     * 如果长度超过指定值，则截取
     */
    public static function cutString($_content, $_max_len){
        if (mb_strlen($_content, 'utf-8') > $_max_len){
            return mb_substr($_content,  $_max_len).'...';
        }

        return $_content;
    }



}